package com.demo.money.service;

import com.demo.money.model.Costdetails;
import com.demo.money.kit.example.CostdetailsExample;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * CostdetailsService类<br>
 * 大致说明
 * <p>
 * <b>常用方法</b>：<br>
 * 1.方法名 - 方法说明
 * <p>
 * <b>私有方法</b>：<br>
 * 1.方法名 - 方法说明
 * <p>
 * <b>全类名</b>:com.demo.money.service<br>
 * <b>类名</b>:CostdetailsService<br>
 * <b>创建者</b>:张峰浦<br>
 * <b>创建时间</b>:2020/3/15 18:08<br>
 */
public interface CostdetailsService {
    /**
     * 综合查询{@link CostdetailsExample}
     *
     * @param example 查询条件
     * @return 查询结果集合
     */
    List<Costdetails> selectByExample(CostdetailsExample example);

    /**
     * 支出信息综合查询
     *
     * @param userId             所属用户 - 等于
     * @param startTime          开始时间 - 大等于
     * @param endTime            结束时间 - 小等于
     * @param startMoney         起始金额 - 大等于
     * @param endMoney           最大金额 - 小等于
     * @param largeclass         类别 - 等于
     * @param subclass           支出平台 - LIKE
     * @param tradename          商品名称 - LIKE
     * @param satisfactiondegree 满意度 - 等于
     * @param note               备注 - LIKE
     * @return 查询结果
     */
    List<Costdetails> selectByZhongHe(String userId, String startTime, String endTime, String startMoney, String endMoney, String largeclass, String subclass, String tradename, String satisfactiondegree, String note);

    /**
     * 添加消费信息
     *
     * @param record 待添加的消费信息
     * @return 响应代码
     */
    int insert(Costdetails record);

    /**
     * 删除一条消费信息byKey
     *
     * @param id 主键id
     * @return 响应代码
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 更新消费信息
     *
     * @param record 待更新的消费信息
     * @return 响应代码
     */
    int updateByPrimaryKey(Costdetails record);

}
